package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc AnalysisPerformanceCalcFormulaCnditionModelComReqDto
 * @使用场景
 */
@Data
public class AnalysisPerformanceCalcFormulaCnditionModelComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 标准数据计算周期模型 LAST_CYCLE:末级周期 MID_OF_PROCESS_CYCLE:中间周期 SUB_CYCLE:子周期 MID_CYCLE:中期 PARENT_CYCLE:父周期
   */
  @NotNull(message = "标准数据计算周期模型不能为空")
  @ApiModelProperty("标准数据计算周期模型")
  private String standardDataCalcCycleModel;

  /**
   * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
   */
  @NotNull(message = "关联目标内容类型编码不能为空")
  @ApiModelProperty("关联目标内容类型编码")
  private String targetCycleContentTypeCode;

  /**
   * 被评对象类型编码 EVA_PORTRAIT:评价画像 EVA_OBJECT:评价对象 FLEVEL_OBJ_TASK_DUTY_DEPT:一级部门目标任务责任部门 OKR_SUBJECT_DEPT:OKR责任主体部门 OKR_SUBJECT_PERSONAL:OKR责任主体个人
   */
  @NotNull(message = "被评对象类型编码不能为空")
  @ApiModelProperty("被评对象类型编码")
  private String evaObjTypeCode;

  /**
   * 计算数据来源 MANUAL_FILLING:人工填报 SYSTEM_DOCKING:系统对接
   */
  @ApiModelProperty("计算数据来源")
  private String calculateDataSource;

  /**
   * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
   */
  @ApiModelProperty("冗余指标业务类型")
  private String targetValueType;

  /**
   * 是否开启主观评分 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启主观评分")
  private String isSubjectiveScoring;

  /**
   * 是否开启量化客观评分 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启量化客观评分")
  private String isObjectiveQuantization;

  /**
   * 开启主客观评分周期类型 LAST_CYCLE:末级周期 UNLIMITED:不限
   */
  @NotNull(message = "开启主客观评分周期类型不能为空")
  @ApiModelProperty("开启主客观评分周期类型")
  private String enableSubjectiveRatingCycleType;

  /**
   * 是否末级周期 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否末级周期不能为空")
  @ApiModelProperty("是否末级周期")
  private String isLastCycle;

}
